The present invention generally relates to file systems, and more specifically, to methods and systems for providing a reflective driver so as to allow read and/or write operations to be performed on a file system without any file system driver.
Under conventional systems, every device, whether it be a printer, disk drive, or keyboard, must have a driver program or driver; some functions may also require drivers. For example, drivers are required for all code or programs attempting to read and/or write a disk drive or media type. Many drivers, such as the keyboard driver, come with the operating system. For other devices, a new driver may need to be loaded if the device is to be connected to the operating system. A driver acts like a translator between the device and programs that use the device. Each device has its own set of specialized commands that only its driver knows. In contrast, most programs access devices by using generic commands. The driver, therefore, accepts generic commands from a program and then translates them into specialized commands for the device. The driver is distributed to and resides on the host (e.g., a computer) that is connected to the device.
The use of drivers may provide certain advantages. However, requiring the use of a driver in connection with a device may also be disadvantageous. For example, with respect to the NT File System (NTFS—a file system for the Window NT operating system), it is not currently possible to provide an embedded NTFS driver. In other instances, embedded drivers are also not possible. Furthermore, drivers have to be stored locally on the host and may need to be updated periodically. Consequently, maintaining the most current version of a driver across multiple hosts may become an issue.
Hence, it would be desirable to provide methods and systems that can be used to allow devices or functions to be accessed in a more efficient manner.